home *** CD-ROM | disk | FTP | other *** search
- <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
-
- <xsl:output method="html" encoding="utf-8" indent="yes"/>
-
- <xsl:template match="/">
- <html>
- <head>
- <style type="text/css">
- <xsl:text>
- body {
- background: #fff;
- font-family: Verdana, "Bitstream Vera Sans", Sans-Serif;
- font-size: 10pt;
- }
- .stamp {
- color: #999;
- }
- .top-day-stamp {
- color: #999;
- text-align: center;
- margin-bottom: 1em;
- }
- .new-day-stamp {
- color: #999;
- text-align: center;
- margin-bottom: 1em;
- margin-top: 1em;
- }
- .nick {
- color: rgb(54,100, 139);
- }
- .nick-self {
- color: rgb(46,139,87);
- }
- .nick-highlight {
- color: rgb(205,92,92);
- }
- </xsl:text>
- </style>
- <title><xsl:value-of select="$title"/></title>
- </head>
- <body>
- <xsl:apply-templates/>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template name="get-day">
- <xsl:param name="stamp"/>
- <xsl:value-of select="substring ($stamp, 1, 8)"/>
- </xsl:template>
-
- <xsl:template name="format-stamp">
- <xsl:param name="stamp"/>
- <xsl:variable name="hour" select="substring ($stamp, 10, 2)"/>
- <xsl:variable name="min" select="substring ($stamp, 13, 2)"/>
-
- <xsl:value-of select="$hour"/>:<xsl:value-of select="$min"/>
- </xsl:template>
-
- <xsl:template name="format-day-stamp">
- <xsl:param name="stamp"/>
- <xsl:variable name="year" select="substring ($stamp, 1, 4)"/>
- <xsl:variable name="month" select="substring ($stamp, 5, 2)"/>
- <xsl:variable name="day" select="substring ($stamp, 7, 2)"/>
-
- <xsl:value-of select="$year"/>-<xsl:value-of select="$month"/>-<xsl:value-of select="$day"/>
- </xsl:template>
-
- <xsl:template name="header">
- <xsl:param name="stamp"/>
- <div class="top-day-stamp">
- <xsl:call-template name="format-day-stamp">
- <xsl:with-param name="stamp" select="@time"/>
- </xsl:call-template>
- </div>
- </xsl:template>
-
- <xsl:template match="a">
- <xsl:text disable-output-escaping="yes"><a href="</xsl:text>
-
- <xsl:value-of disable-output-escaping="yes" select="@href"/>
-
- <xsl:text disable-output-escaping="yes">"></xsl:text>
-
- <xsl:value-of select="@href"/>
- <xsl:text disable-output-escaping="yes"></a></xsl:text>
- </xsl:template>
-
- <xsl:template match="log">
-
- <div class="top-day-stamp">
- <xsl:call-template name="format-day-stamp">
- <xsl:with-param name="stamp" select="//message[1]/@time"/>
- </xsl:call-template>
- </div>
-
- <xsl:for-each select="*">
-
- <xsl:variable name="prev-time">
- <xsl:call-template name="get-day">
- <xsl:with-param name="stamp" select="preceding-sibling::*[1]/@time"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="this-time">
- <xsl:call-template name="get-day">
- <xsl:with-param name="stamp" select="@time"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:if test="$prev-time < $this-time">
- <div class="new-day-stamp">
- <xsl:call-template name="format-day-stamp">
- <xsl:with-param name="stamp" select="@time"/>
- </xsl:call-template>
- </div>
- </xsl:if>
-
- <xsl:variable name="stamp">
- <xsl:call-template name="format-stamp">
- <xsl:with-param name="stamp" select="@time"/>
- </xsl:call-template>
- </xsl:variable>
-
- <span class="stamp">
- <xsl:value-of select="$stamp"/>
- </span>
-
- <xsl:variable name="nick-class">
- <xsl:choose>
- <xsl:when test="not(string(@id))">nick-self</xsl:when>
- <xsl:otherwise>nick</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <span class="{$nick-class}">
- <<xsl:value-of select="@name"/>>
- </span>
-
- <xsl:apply-templates/>
- <br/>
-
- </xsl:for-each>
-
- </xsl:template>
-
- </xsl:stylesheet>
-